package com.macro.mall.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.macro.mall.common.api.PageReq;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UmsMember extends PageReq implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    private Long memberLevelId;

    @ApiModelProperty(value = "用户名")
    private String username;

    @ApiModelProperty(value = "密码")
    private String password;

    @ApiModelProperty(value = "昵称")
    private String nickname;

    @ApiModelProperty(value = "手机号码")
    private String phone;

    @ApiModelProperty(value = "用户类型 01-服务 02-学院类 03-服务、学院")
    private String userType;

    @ApiModelProperty(value = "帐号启用状态:0->禁用；1->启用")
    private Integer status;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "注册时间")
    private Date createTime;

    @ApiModelProperty(value = "头像")
    private String icon;

    @ApiModelProperty(value = "性别：0->未知；1->男；2->女")
    private Integer gender;

    @ApiModelProperty(value = "生日")
    private String birthday;

    @ApiModelProperty(value = "所属城市")
    private String city;

    @ApiModelProperty(value = "职业")
    private String job;

    @ApiModelProperty(value = "个性签名")
    private String personalizedSignature;

    @ApiModelProperty(value = "用户来源")
    private Integer sourceType;

    @ApiModelProperty(value = "积分")
    private Integer integration;

    @ApiModelProperty(value = "成长值")
    private Integer growth;

    @ApiModelProperty(value = "剩余抽奖次数")
    private Integer luckeyCount;

    @ApiModelProperty(value = "历史积分数量")
    private Integer historyIntegration;

    @ApiModelProperty(value = "社区标识")
    private Integer communityId;

    @ApiModelProperty(value = "社区名称")
    private String communityName;

    @ApiModelProperty(value = "姓名", required = false, position = 3)
    private String name;
    @ApiModelProperty(value = "身份证号码", required = false, position = 4)
    private String idCard;
    @ApiModelProperty(value = "省份", required = false, position = 5)
    private String province;
    @ApiModelProperty(value = "区", required = false, position = 7)
    private String area;
    @ApiModelProperty(value = "楼号", required = false, position = 8)
    private String floor;


    @ApiModelProperty(value = "所在城市", required = false, position = 6)
    private String cityCode;
    @ApiModelProperty(value = "区", required = false, position = 7)
    private String countyCode;
    @ApiModelProperty(value = "政治面貌", required = false, position = 7)
    private String political;

    @ApiModelProperty(value = "入住与志愿者信息", required = false, position = 8)
    private UmsMemberExtend memberExtend;

    @ApiModelProperty(value = "用户身份 01-居民 02-居委会 03-物业公司 04-业委会 05-物管会 06-管理员 07-供应商 08-政府组织 09-其他", required = false, position = 9)
    private String userIdentity;

    @ApiModelProperty(value = "微信标识", required = false, position = 10)
    private String openId;

    @ApiModelProperty(value = "最新审核状态 01 -待审核 02 审核通过 03审核不通过", required = false, position = 11)
    private String auditStatus;

    @ApiModelProperty(value = "是否是用户补全信息页 0-否 1-是", required = false, position = 12)
    private Integer completePage;

    @ApiModelProperty(value = "用户补全信息审核状态 01 -待审核 02 审核通过 03审核不通过", required = false, position = 13)
    private String completePageStatus;

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", memberLevelId=").append(memberLevelId);
        sb.append(", username=").append(username);
        sb.append(", password=").append(password);
        sb.append(", nickname=").append(nickname);
        sb.append(", phone=").append(phone);
        sb.append(", status=").append(status);
        sb.append(", userIdentity=").append(userIdentity);
        sb.append(", auditStatus=").append(auditStatus);
        sb.append(", completePage=").append(completePage);
        sb.append(", completePageStatus=").append(completePageStatus);
        sb.append(", createTime=").append(createTime);
        sb.append(", icon=").append(icon);
        sb.append(", gender=").append(gender);
        sb.append(", birthday=").append(birthday);
        sb.append(", city=").append(city);
        sb.append(", job=").append(job);
        sb.append(", personalizedSignature=").append(personalizedSignature);
        sb.append(", sourceType=").append(sourceType);
        sb.append(", integration=").append(integration);
        sb.append(", growth=").append(growth);
        sb.append(", luckeyCount=").append(luckeyCount);
        sb.append(", historyIntegration=").append(historyIntegration);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }


}